<!DOCTYPE html>
<html lang="cn">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <h1>JS内置对象 - Math</h1>
    <hr>

    <script>
    console.log(Math);
    console.log(Math.constructor);

    console.log('PI:', Math.PI);
    console.log('E:', Math.E);

    // 绝对值
    console.log('abs: ', Math.abs(-99));
    // 开平方根
    console.log('sqrt: ', Math.sqrt(4));
    console.log('sqrt: ', Math.sqrt(16));
    console.log('sqrt: ', Math.sqrt(99));
    // 最大最小值
    console.log('max: ', Math.max(1,561,61,16,161,85614,65146,15));
    console.log('min: ', Math.min(1,561,61,16,161,85614,65146,15));

    // 舍去取整
    console.log('floor: ', Math.floor(12.99));
    // 进一取整
    console.log('ceil: ', Math.ceil(12.00001));
    // 四舍五入取整
    console.log('round: ', Math.round(12.444));

    /*
    PS.
        四舍五入
        0      不做处理
        1234   舍去
        56789  进一

        2.55 + 3.45 ==> 2.6 + 3.5 = 6.1

        银行家的舍入 : 四舍六入,奇进偶舍
        2.55 + 3.45 ==> 2.6 + 3.4 = 6.0
     */
    
    // 随机数 
    document.write('随机数: ' + Math.random() + '<br>');

    // 0-9:
    document.write('0-9随机数: ' + Math.floor(Math.random()*10) + '<br>');
    // 0-10:
    document.write('0-10随机数: ' + Math.round(Math.random()*10) + '<br>');
    
    // 0-9:
    document.write('0-9随机数: ' + Math.floor(Math.random()*1000000%10) + '<br>');
    // 0-10:
    document.write('0-10随机数: ' + Math.round(Math.random()*1000000%10) + '<br>');

    // 6-15随机数:
    document.write('6-15随机数: ' + (Math.floor(Math.random()*1000000%10)+6) + '<br>');


    /*
    PS: JS随机数的产生.
    Math.random()函数返回0和1之间的伪随机数,可能为0,但总是小于1,(0,1)

    生成n-m,包含n 但不包含m 的整数:
    1. 算出 m-n的值,假设等于w
    2. Math.random()*w
    3. Math.random()*w+n
    4. parseInt(Math.random()*w+n, 10)

    生成n-m,不包含n 但包含m 的整数:​
    1. 算出 m-n的值,假设等于w
    2. Math.random()*w
    3. Math.random()*w+n
    4. Math.floor(Math.random()*w+n) + 1

    生成n-m,不包含n和m的整数:
    1. 算出 m-n-2的值,假设等于w
    2. Math.random()*w
    3. Math.random()*w+n +1
    4. Math.round(Math.random()*w+n+1) 或者 Math.ceil(Math.random()*w+n+1)

    生成n-m,包含n和m的随机数:
    1. 算出 m-n的值,假设等于w
    2. Math.random()*w
    3. Math.random()*w+n
    4. Math.round(Math.random()*w+n) 或者 Math.ceil(Math.random()*w+n)

     */

    </script>
</body>
</html>